home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / ObjectOutputStream$PutFieldImpl.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  3.7 KB  |  103 lines

  1. package java.io;
  2.  
  3. class ObjectOutputStream$PutFieldImpl extends ObjectOutputStream.PutField {
  4.    private final ObjectStreamClass desc;
  5.    private final byte[] primVals;
  6.    private final Object[] objVals;
  7.    // $FF: synthetic field
  8.    final ObjectOutputStream this$0;
  9.  
  10.    ObjectOutputStream$PutFieldImpl(ObjectOutputStream var1, ObjectStreamClass var2) {
  11.       this.this$0 = var1;
  12.       this.desc = var2;
  13.       this.primVals = new byte[var2.getPrimDataSize()];
  14.       this.objVals = new Object[var2.getNumObjFields()];
  15.    }
  16.  
  17.    public void put(String var1, boolean var2) {
  18.       Bits.putBoolean(this.primVals, this.getFieldOffset(var1, Boolean.TYPE), var2);
  19.    }
  20.  
  21.    public void put(String var1, byte var2) {
  22.       this.primVals[this.getFieldOffset(var1, Byte.TYPE)] = var2;
  23.    }
  24.  
  25.    public void put(String var1, char var2) {
  26.       Bits.putChar(this.primVals, this.getFieldOffset(var1, Character.TYPE), var2);
  27.    }
  28.  
  29.    public void put(String var1, short var2) {
  30.       Bits.putShort(this.primVals, this.getFieldOffset(var1, Short.TYPE), var2);
  31.    }
  32.  
  33.    public void put(String var1, int var2) {
  34.       Bits.putInt(this.primVals, this.getFieldOffset(var1, Integer.TYPE), var2);
  35.    }
  36.  
  37.    public void put(String var1, float var2) {
  38.       Bits.putFloat(this.primVals, this.getFieldOffset(var1, Float.TYPE), var2);
  39.    }
  40.  
  41.    public void put(String var1, long var2) {
  42.       Bits.putLong(this.primVals, this.getFieldOffset(var1, Long.TYPE), var2);
  43.    }
  44.  
  45.    public void put(String var1, double var2) {
  46.       Bits.putDouble(this.primVals, this.getFieldOffset(var1, Double.TYPE), var2);
  47.    }
  48.  
  49.    public void put(String var1, Object var2) {
  50.       this.objVals[this.getFieldOffset(var1, Object.class)] = var2;
  51.    }
  52.  
  53.    public void write(ObjectOutput var1) throws IOException {
  54.       if (this.this$0 != var1) {
  55.          throw new IllegalArgumentException("wrong stream");
  56.       } else {
  57.          var1.write(this.primVals, 0, this.primVals.length);
  58.          ObjectStreamField[] var2 = this.desc.getFields(false);
  59.          int var3 = var2.length - this.objVals.length;
  60.  
  61.          for(int var4 = 0; var4 < this.objVals.length; ++var4) {
  62.             if (var2[var3 + var4].isUnshared()) {
  63.                throw new IOException("cannot write unshared object");
  64.             }
  65.  
  66.             var1.writeObject(this.objVals[var4]);
  67.          }
  68.  
  69.       }
  70.    }
  71.  
  72.    void writeFields() throws IOException {
  73.       ObjectOutputStream.access$000(this.this$0).write(this.primVals, 0, this.primVals.length, false);
  74.       ObjectStreamField[] var1 = this.desc.getFields(false);
  75.       int var2 = var1.length - this.objVals.length;
  76.  
  77.       for(int var3 = 0; var3 < this.objVals.length; ++var3) {
  78.          if (ObjectOutputStream.access$100()) {
  79.             ObjectOutputStream.access$200(this.this$0).push("field (class \"" + this.desc.getName() + "\", name: \"" + var1[var2 + var3].getName() + "\", type: \"" + var1[var2 + var3].getType() + "\")");
  80.          }
  81.  
  82.          try {
  83.             ObjectOutputStream.access$300(this.this$0, this.objVals[var3], var1[var2 + var3].isUnshared());
  84.          } finally {
  85.             if (ObjectOutputStream.access$100()) {
  86.                ObjectOutputStream.access$200(this.this$0).pop();
  87.             }
  88.  
  89.          }
  90.       }
  91.  
  92.    }
  93.  
  94.    private int getFieldOffset(String var1, Class var2) {
  95.       ObjectStreamField var3 = this.desc.getField(var1, var2);
  96.       if (var3 == null) {
  97.          throw new IllegalArgumentException("no such field " + var1 + " with type " + var2);
  98.       } else {
  99.          return var3.getOffset();
  100.       }
  101.    }
  102. }
  103.